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":"mapAsyncIterable.js","sourceRoot":"","sources":["../../src/execution/mapAsyncIterable.ts"],"names":[],"mappings":";;AASA,4CAqBC;AA9BD,0DAAoD;AAGpD,iFAA2E;AAE3E;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,QAA8C,EAC9C,QAAyC;IAEzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,QAAQ;QACvB,CAAC,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QACpC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAE5B,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,CAAC,MAAgB,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjE,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO,IAAA,wDAAyB,EAC9B,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACxC,QAAQ,EACR,OAAO,CACR,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,EAA0B;IAC1D,IAAI,CAAC;QACH,MAAM,EAAE,EAAE,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;AACH,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAClC,QAAuD,EACvD,KAAsC;IAEtC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,IAAA,wBAAS,EAAC,MAAM,CAAC,EAAE,CAAC;YACtB,MAAM,MAAM,MAAM,CAAC;YACnB,SAAS;QACX,CAAC;QACD,MAAM,MAAM,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["import { isPromise } from '../jsutils/isPromise.
|
|
1
|
+
{"version":3,"file":"mapAsyncIterable.js","sourceRoot":"","sources":["../../src/execution/mapAsyncIterable.ts"],"names":[],"mappings":";;AASA,4CAqBC;AA9BD,0DAAoD;AAGpD,iFAA2E;AAE3E;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,QAA8C,EAC9C,QAAyC;IAEzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,QAAQ;QACvB,CAAC,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QACpC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAE5B,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,CAAC,MAAgB,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjE,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO,IAAA,wDAAyB,EAC9B,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACxC,QAAQ,EACR,OAAO,CACR,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,EAA0B;IAC1D,IAAI,CAAC;QACH,MAAM,EAAE,EAAE,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;AACH,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAClC,QAAuD,EACvD,KAAsC;IAEtC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,IAAA,wBAAS,EAAC,MAAM,CAAC,EAAE,CAAC;YACtB,MAAM,MAAM,MAAM,CAAC;YACnB,SAAS;QACX,CAAC;QACD,MAAM,MAAM,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["import { isPromise } from '../jsutils/isPromise.ts';\nimport type { PromiseOrValue } from '../jsutils/PromiseOrValue.ts';\n\nimport { withConcurrentAbruptClose } from './withConcurrentAbruptClose.ts';\n\n/**\n * Given an AsyncIterable and a callback function, return an AsyncIterator\n * which produces values mapped via calling the callback function.\n */\nexport function mapAsyncIterable<T, U>(\n iterable: AsyncGenerator<T> | AsyncIterable<T>,\n callback: (value: T) => PromiseOrValue<U>,\n): AsyncGenerator<U, void, void> {\n const iterator = iterable[Symbol.asyncIterator]();\n const returnFn = iterator.return?.bind(iterator);\n const throwFn = iterator.throw?.bind(iterator);\n\n const onReturn = returnFn\n ? () => callIgnoringErrors(returnFn)\n : () => Promise.resolve();\n\n const onThrow = throwFn\n ? (reason?: unknown) => callIgnoringErrors(() => throwFn(reason))\n : onReturn;\n\n return withConcurrentAbruptClose(\n mapAsyncIterableImpl(iterable, callback),\n onReturn,\n onThrow,\n );\n}\n\nasync function callIgnoringErrors(fn: () => Promise<unknown>): Promise<void> {\n try {\n await fn();\n } catch {\n // ignore error\n }\n}\n\nasync function* mapAsyncIterableImpl<T, U, R = undefined>(\n iterable: AsyncGenerator<T, R, void> | AsyncIterable<T>,\n mapFn: (value: T) => PromiseOrValue<U>,\n): AsyncGenerator<U, void, void> {\n for await (const value of iterable) {\n const result = mapFn(value);\n if (isPromise(result)) {\n yield await result;\n continue;\n }\n yield result;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapAsyncIterable.js","sourceRoot":"","sources":["../../src/execution/mapAsyncIterable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iCAAgC;AAGpD,OAAO,EAAE,yBAAyB,EAAE,wCAAuC;AAE3E;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAA8C,EAC9C,QAAyC;IAEzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,QAAQ;QACvB,CAAC,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QACpC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAE5B,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,CAAC,MAAgB,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjE,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO,yBAAyB,CAC9B,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACxC,QAAQ,EACR,OAAO,CACR,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,EAA0B;IAC1D,IAAI,CAAC;QACH,MAAM,EAAE,EAAE,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;AACH,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAClC,QAAuD,EACvD,KAAsC;IAEtC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,MAAM,MAAM,MAAM,CAAC;YACnB,SAAS;QACX,CAAC;QACD,MAAM,MAAM,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["import { isPromise } from '../jsutils/isPromise.
|
|
1
|
+
{"version":3,"file":"mapAsyncIterable.js","sourceRoot":"","sources":["../../src/execution/mapAsyncIterable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,iCAAgC;AAGpD,OAAO,EAAE,yBAAyB,EAAE,wCAAuC;AAE3E;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAA8C,EAC9C,QAAyC;IAEzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,QAAQ;QACvB,CAAC,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC;QACpC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAE5B,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,CAAC,MAAgB,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjE,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO,yBAAyB,CAC9B,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACxC,QAAQ,EACR,OAAO,CACR,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,EAA0B;IAC1D,IAAI,CAAC;QACH,MAAM,EAAE,EAAE,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;AACH,CAAC;AAED,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAClC,QAAuD,EACvD,KAAsC;IAEtC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,MAAM,MAAM,MAAM,CAAC;YACnB,SAAS;QACX,CAAC;QACD,MAAM,MAAM,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["import { isPromise } from '../jsutils/isPromise.ts';\nimport type { PromiseOrValue } from '../jsutils/PromiseOrValue.ts';\n\nimport { withConcurrentAbruptClose } from './withConcurrentAbruptClose.ts';\n\n/**\n * Given an AsyncIterable and a callback function, return an AsyncIterator\n * which produces values mapped via calling the callback function.\n */\nexport function mapAsyncIterable<T, U>(\n iterable: AsyncGenerator<T> | AsyncIterable<T>,\n callback: (value: T) => PromiseOrValue<U>,\n): AsyncGenerator<U, void, void> {\n const iterator = iterable[Symbol.asyncIterator]();\n const returnFn = iterator.return?.bind(iterator);\n const throwFn = iterator.throw?.bind(iterator);\n\n const onReturn = returnFn\n ? () => callIgnoringErrors(returnFn)\n : () => Promise.resolve();\n\n const onThrow = throwFn\n ? (reason?: unknown) => callIgnoringErrors(() => throwFn(reason))\n : onReturn;\n\n return withConcurrentAbruptClose(\n mapAsyncIterableImpl(iterable, callback),\n onReturn,\n onThrow,\n );\n}\n\nasync function callIgnoringErrors(fn: () => Promise<unknown>): Promise<void> {\n try {\n await fn();\n } catch {\n // ignore error\n }\n}\n\nasync function* mapAsyncIterableImpl<T, U, R = undefined>(\n iterable: AsyncGenerator<T, R, void> | AsyncIterable<T>,\n mapFn: (value: T) => PromiseOrValue<U>,\n): AsyncGenerator<U, void, void> {\n for await (const value of iterable) {\n const result = mapFn(value);\n if (isPromise(result)) {\n yield await result;\n continue;\n }\n yield result;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"returnIteratorCatchingErrors.js","sourceRoot":"","sources":["../../src/execution/returnIteratorCatchingErrors.ts"],"names":[],"mappings":";;AAAA,oEAQC;AARM,KAAK,UAAU,4BAA4B,CAChD,QAAgC;IAEhC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"returnIteratorCatchingErrors.js","sourceRoot":"","sources":["../../src/execution/returnIteratorCatchingErrors.ts"],"names":[],"mappings":";;AAAA,oEAQC;AARM,KAAK,UAAU,4BAA4B,CAChD,QAAgC;IAEhC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB;IAClB,CAAC;AACH,CAAC","sourcesContent":["export async function returnIteratorCatchingErrors(\n iterator: AsyncIterator<unknown>,\n): Promise<void> {\n try {\n await iterator.return?.();\n } catch {\n // ignore errors\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"returnIteratorCatchingErrors.js","sourceRoot":"","sources":["../../src/execution/returnIteratorCatchingErrors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,QAAgC;IAEhC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"returnIteratorCatchingErrors.js","sourceRoot":"","sources":["../../src/execution/returnIteratorCatchingErrors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,QAAgC;IAEhC,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB;IAClB,CAAC;AACH,CAAC","sourcesContent":["export async function returnIteratorCatchingErrors(\n iterator: AsyncIterator<unknown>,\n): Promise<void> {\n try {\n await iterator.return?.();\n } catch {\n // ignore errors\n }\n}\n"]}
|
package/execution/values.d.mts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { Maybe } from
|
|
2
|
-
import type { ObjMap, ReadOnlyObjMap } from
|
|
3
|
-
import { GraphQLError } from
|
|
4
|
-
import type { DirectiveNode, FieldNode, FragmentSpreadNode, VariableDefinitionNode } from
|
|
5
|
-
import type { GraphQLField } from
|
|
6
|
-
import type { GraphQLDirective } from
|
|
7
|
-
import type { GraphQLSchema } from
|
|
8
|
-
import type { FragmentVariableValues } from
|
|
9
|
-
import type { GraphQLVariableSignature } from
|
|
1
|
+
import type { Maybe } from "../jsutils/Maybe.mjs";
|
|
2
|
+
import type { ObjMap, ReadOnlyObjMap } from "../jsutils/ObjMap.mjs";
|
|
3
|
+
import { GraphQLError } from "../error/GraphQLError.mjs";
|
|
4
|
+
import type { DirectiveNode, FieldNode, FragmentSpreadNode, VariableDefinitionNode } from "../language/ast.mjs";
|
|
5
|
+
import type { GraphQLField } from "../type/definition.mjs";
|
|
6
|
+
import type { GraphQLDirective } from "../type/directives.mjs";
|
|
7
|
+
import type { GraphQLSchema } from "../type/schema.mjs";
|
|
8
|
+
import type { FragmentVariableValues } from "./collectFields.mjs";
|
|
9
|
+
import type { GraphQLVariableSignature } from "./getVariableSignature.mjs";
|
|
10
10
|
export interface VariableValues {
|
|
11
11
|
readonly sources: ReadOnlyObjMap<VariableValueSource>;
|
|
12
12
|
readonly coerced: ReadOnlyObjMap<unknown>;
|
package/execution/values.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { Maybe } from
|
|
2
|
-
import type { ObjMap, ReadOnlyObjMap } from
|
|
3
|
-
import { GraphQLError } from
|
|
4
|
-
import type { DirectiveNode, FieldNode, FragmentSpreadNode, VariableDefinitionNode } from
|
|
5
|
-
import type { GraphQLField } from
|
|
6
|
-
import type { GraphQLDirective } from
|
|
7
|
-
import type { GraphQLSchema } from
|
|
8
|
-
import type { FragmentVariableValues } from
|
|
9
|
-
import type { GraphQLVariableSignature } from
|
|
1
|
+
import type { Maybe } from "../jsutils/Maybe.js";
|
|
2
|
+
import type { ObjMap, ReadOnlyObjMap } from "../jsutils/ObjMap.js";
|
|
3
|
+
import { GraphQLError } from "../error/GraphQLError.js";
|
|
4
|
+
import type { DirectiveNode, FieldNode, FragmentSpreadNode, VariableDefinitionNode } from "../language/ast.js";
|
|
5
|
+
import type { GraphQLField } from "../type/definition.js";
|
|
6
|
+
import type { GraphQLDirective } from "../type/directives.js";
|
|
7
|
+
import type { GraphQLSchema } from "../type/schema.js";
|
|
8
|
+
import type { FragmentVariableValues } from "./collectFields.js";
|
|
9
|
+
import type { GraphQLVariableSignature } from "./getVariableSignature.js";
|
|
10
10
|
export interface VariableValues {
|
|
11
11
|
readonly sources: ReadOnlyObjMap<VariableValueSource>;
|
|
12
12
|
readonly coerced: ReadOnlyObjMap<unknown>;
|
package/execution/values.js
CHANGED
|
@@ -4,16 +4,16 @@ exports.getVariableValues = getVariableValues;
|
|
|
4
4
|
exports.getFragmentVariableValues = getFragmentVariableValues;
|
|
5
5
|
exports.getArgumentValues = getArgumentValues;
|
|
6
6
|
exports.getDirectiveValues = getDirectiveValues;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
7
|
+
const invariant_ts_1 = require("../jsutils/invariant.js");
|
|
8
|
+
const printPathArray_ts_1 = require("../jsutils/printPathArray.js");
|
|
9
|
+
const ensureGraphQLError_ts_1 = require("../error/ensureGraphQLError.js");
|
|
10
|
+
const GraphQLError_ts_1 = require("../error/GraphQLError.js");
|
|
11
|
+
const kinds_ts_1 = require("../language/kinds.js");
|
|
12
|
+
const definition_ts_1 = require("../type/definition.js");
|
|
13
|
+
const validate_ts_1 = require("../type/validate.js");
|
|
14
|
+
const coerceInputValue_ts_1 = require("../utilities/coerceInputValue.js");
|
|
15
|
+
const validateInputValue_ts_1 = require("../utilities/validateInputValue.js");
|
|
16
|
+
const getVariableSignature_ts_1 = require("./getVariableSignature.js");
|
|
17
17
|
/**
|
|
18
18
|
* Prepares an object map of variableValues of the correct type based on the
|
|
19
19
|
* provided variable definitions and arbitrary input. If the input cannot be
|
|
@@ -28,7 +28,7 @@ function getVariableValues(schema, varDefNodes, inputs, options) {
|
|
|
28
28
|
try {
|
|
29
29
|
const variableValues = coerceVariableValues(schema, varDefNodes, inputs, (error) => {
|
|
30
30
|
if (maxErrors != null && errors.length >= maxErrors) {
|
|
31
|
-
throw new
|
|
31
|
+
throw new GraphQLError_ts_1.GraphQLError('Too many errors processing variables, error limit reached. Execution aborted.');
|
|
32
32
|
}
|
|
33
33
|
errors.push(error);
|
|
34
34
|
}, options?.hideSuggestions);
|
|
@@ -37,7 +37,7 @@ function getVariableValues(schema, varDefNodes, inputs, options) {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
catch (error) {
|
|
40
|
-
errors.push((0,
|
|
40
|
+
errors.push((0, ensureGraphQLError_ts_1.ensureGraphQLError)(error));
|
|
41
41
|
}
|
|
42
42
|
return { errors };
|
|
43
43
|
}
|
|
@@ -45,8 +45,8 @@ function coerceVariableValues(schema, varDefNodes, inputs, onError, hideSuggesti
|
|
|
45
45
|
const sources = Object.create(null);
|
|
46
46
|
const coerced = Object.create(null);
|
|
47
47
|
for (const varDefNode of varDefNodes) {
|
|
48
|
-
const varSignature = (0,
|
|
49
|
-
if (varSignature instanceof
|
|
48
|
+
const varSignature = (0, getVariableSignature_ts_1.getVariableSignature)(schema, varDefNode);
|
|
49
|
+
if (varSignature instanceof GraphQLError_ts_1.GraphQLError) {
|
|
50
50
|
onError(varSignature);
|
|
51
51
|
continue;
|
|
52
52
|
}
|
|
@@ -56,11 +56,11 @@ function coerceVariableValues(schema, varDefNodes, inputs, onError, hideSuggesti
|
|
|
56
56
|
sources[varName] = { signature: varSignature };
|
|
57
57
|
if (varDefNode.defaultValue) {
|
|
58
58
|
maybeUseDefaultValue(coerced, varName, varSignature, (error, path) => {
|
|
59
|
-
onError(new
|
|
59
|
+
onError(new GraphQLError_ts_1.GraphQLError(`Variable "$${varName}" has invalid default value${(0, printPathArray_ts_1.printPathArray)(path)}: ${error.message}`, { nodes: varDefNode }));
|
|
60
60
|
}, hideSuggestions);
|
|
61
61
|
continue;
|
|
62
62
|
}
|
|
63
|
-
else if (!(0,
|
|
63
|
+
else if (!(0, definition_ts_1.isNonNullType)(varType)) {
|
|
64
64
|
// Non-provided values for nullable variables are omitted.
|
|
65
65
|
continue;
|
|
66
66
|
}
|
|
@@ -68,13 +68,13 @@ function coerceVariableValues(schema, varDefNodes, inputs, onError, hideSuggesti
|
|
|
68
68
|
else {
|
|
69
69
|
sources[varName] = { signature: varSignature, value };
|
|
70
70
|
}
|
|
71
|
-
const coercedValue = (0,
|
|
71
|
+
const coercedValue = (0, coerceInputValue_ts_1.coerceInputValue)(value, varType);
|
|
72
72
|
if (coercedValue !== undefined) {
|
|
73
73
|
coerced[varName] = coercedValue;
|
|
74
74
|
}
|
|
75
75
|
else {
|
|
76
|
-
(0,
|
|
77
|
-
onError(new
|
|
76
|
+
(0, validateInputValue_ts_1.validateInputValue)(value, varType, (error, path) => {
|
|
77
|
+
onError(new GraphQLError_ts_1.GraphQLError(`Variable "$${varName}" has invalid value${(0, printPathArray_ts_1.printPathArray)(path)}: ${error.message}`, { nodes: varDefNode, originalError: error }));
|
|
78
78
|
}, hideSuggestions);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
@@ -85,7 +85,7 @@ function maybeUseDefaultValue(coercedValues, name, inputValue, onError, hideSugg
|
|
|
85
85
|
// coerceDefaultValue assumes validation has already rejected invalid
|
|
86
86
|
// defaults. If validation was skipped, invalid defaults or nested input
|
|
87
87
|
// field defaults can throw here; recover with validation-style errors below.
|
|
88
|
-
const coercedDefaultValue = (0,
|
|
88
|
+
const coercedDefaultValue = (0, coerceInputValue_ts_1.coerceDefaultValue)(inputValue);
|
|
89
89
|
if (coercedDefaultValue !== undefined) {
|
|
90
90
|
coercedValues[name] = coercedDefaultValue;
|
|
91
91
|
}
|
|
@@ -93,20 +93,20 @@ function maybeUseDefaultValue(coercedValues, name, inputValue, onError, hideSugg
|
|
|
93
93
|
catch (error) {
|
|
94
94
|
const defaultInput = inputValue.default;
|
|
95
95
|
// Defensive: coerceDefaultValue should only throw while coercing a default.
|
|
96
|
-
/*
|
|
96
|
+
/* node:coverage ignore next 3 */
|
|
97
97
|
if (defaultInput === undefined) {
|
|
98
98
|
throw error;
|
|
99
99
|
}
|
|
100
100
|
// Prefer validation's user-facing errors for invalid defaults.
|
|
101
101
|
let reportedValidationError = false;
|
|
102
|
-
(0,
|
|
102
|
+
(0, validate_ts_1.validateDefaultInput)(defaultInput, inputValue.type, (defaultError, path) => {
|
|
103
103
|
reportedValidationError = true;
|
|
104
104
|
onError(defaultError, path);
|
|
105
105
|
}, hideSuggestions);
|
|
106
106
|
if (!reportedValidationError) {
|
|
107
107
|
// The default itself validated, so coercion failed while applying a nested
|
|
108
108
|
// input field default. Surface the original coercion error.
|
|
109
|
-
onError((0,
|
|
109
|
+
onError((0, ensureGraphQLError_ts_1.ensureGraphQLError)(error), []);
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
}
|
|
@@ -150,14 +150,14 @@ function getArgumentValues(def, node, variableValues, fragmentVariableValues, hi
|
|
|
150
150
|
function coerceArgument(coercedValues, node, argName, argDef, argumentNode, variableValues, fragmentVariableValues, hideSuggestions) {
|
|
151
151
|
const argType = argDef.type;
|
|
152
152
|
const onArgDefaultValueError = (error, path) => {
|
|
153
|
-
throw new
|
|
153
|
+
throw new GraphQLError_ts_1.GraphQLError(`${printArgumentOrFragmentVariable(argDef, node)} has invalid default value${(0, printPathArray_ts_1.printPathArray)(path)}: ${error.message}`, { nodes: node });
|
|
154
154
|
};
|
|
155
155
|
if (!argumentNode) {
|
|
156
|
-
if ((0,
|
|
156
|
+
if ((0, definition_ts_1.isRequiredArgument)(argDef)) {
|
|
157
157
|
// Note: ProvidedRequiredArgumentsRule validation should catch this before
|
|
158
158
|
// execution. This is a runtime check to ensure execution does not
|
|
159
159
|
// continue with an invalid argument value.
|
|
160
|
-
throw new
|
|
160
|
+
throw new GraphQLError_ts_1.GraphQLError(
|
|
161
161
|
// TODO: clean up the naming of isRequiredArgument(), isArgument(), and argDef if/when experimental fragment variables are merged
|
|
162
162
|
`${printArgumentOrFragmentVariable(argDef, node)} of required type "${argType}" was not provided.`, { nodes: node });
|
|
163
163
|
}
|
|
@@ -167,36 +167,36 @@ function coerceArgument(coercedValues, node, argName, argDef, argumentNode, vari
|
|
|
167
167
|
const valueNode = argumentNode.value;
|
|
168
168
|
// Variables without a value are treated as if no argument was provided if
|
|
169
169
|
// the argument is not required.
|
|
170
|
-
if (valueNode.kind ===
|
|
170
|
+
if (valueNode.kind === kinds_ts_1.Kind.VARIABLE) {
|
|
171
171
|
const variableName = valueNode.name.value;
|
|
172
172
|
const scopedVariableValues = fragmentVariableValues?.sources[variableName]
|
|
173
173
|
? fragmentVariableValues
|
|
174
174
|
: variableValues;
|
|
175
175
|
if ((scopedVariableValues == null ||
|
|
176
176
|
!Object.hasOwn(scopedVariableValues.coerced, variableName)) &&
|
|
177
|
-
!(0,
|
|
177
|
+
!(0, definition_ts_1.isRequiredArgument)(argDef)) {
|
|
178
178
|
maybeUseDefaultValue(coercedValues, argName, argDef, onArgDefaultValueError, hideSuggestions);
|
|
179
179
|
return;
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
|
-
const coercedValue = (0,
|
|
182
|
+
const coercedValue = (0, coerceInputValue_ts_1.coerceInputLiteral)(valueNode, argType, variableValues, fragmentVariableValues);
|
|
183
183
|
if (coercedValue === undefined) {
|
|
184
184
|
// Note: ValuesOfCorrectTypeRule validation should catch this before
|
|
185
185
|
// execution. This is a runtime check to ensure execution does not
|
|
186
186
|
// continue with an invalid argument value.
|
|
187
|
-
(0,
|
|
187
|
+
(0, validateInputValue_ts_1.validateInputLiteral)(valueNode, argType, (error, path) => {
|
|
188
188
|
// TODO: clean up the naming of isRequiredArgument(), isArgument(), and argDef if/when experimental fragment variables are merged
|
|
189
|
-
error.message = `${printArgumentOrFragmentVariable(argDef, node)} has invalid value${(0,
|
|
189
|
+
error.message = `${printArgumentOrFragmentVariable(argDef, node)} has invalid value${(0, printPathArray_ts_1.printPathArray)(path)}: ${error.message}`;
|
|
190
190
|
throw error;
|
|
191
191
|
}, variableValues, fragmentVariableValues, hideSuggestions);
|
|
192
|
-
/*
|
|
193
|
-
(0,
|
|
192
|
+
/* node:coverage ignore next */
|
|
193
|
+
(0, invariant_ts_1.invariant)(false, 'Invalid argument');
|
|
194
194
|
}
|
|
195
195
|
coercedValues[argName] = coercedValue;
|
|
196
196
|
}
|
|
197
197
|
// TODO: clean up the naming of isRequiredArgument(), isArgument(), and argDef if/when experimental fragment variables are merged
|
|
198
198
|
function printArgumentOrFragmentVariable(argDef, node) {
|
|
199
|
-
return (0,
|
|
199
|
+
return (0, definition_ts_1.isArgument)(argDef)
|
|
200
200
|
? `Argument "${argDef}"`
|
|
201
201
|
: `Variable "$${argDef.name}" defined by fragment "${node.name.value}"`;
|
|
202
202
|
}
|
package/execution/values.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/execution/values.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../jsutils/invariant.js';\nimport type { Maybe } from '../jsutils/Maybe.js';\nimport type { ObjMap, ReadOnlyObjMap } from '../jsutils/ObjMap.js';\nimport { printPathArray } from '../jsutils/printPathArray.js';\n\nimport { ensureGraphQLError } from '../error/ensureGraphQLError.js';\nimport { GraphQLError } from '../error/GraphQLError.js';\n\nimport type {\n ArgumentNode,\n DirectiveNode,\n FieldNode,\n FragmentArgumentNode,\n FragmentSpreadNode,\n VariableDefinitionNode,\n} from '../language/ast.js';\nimport { Kind } from '../language/kinds.js';\n\nimport type { GraphQLArgument, GraphQLField } from '../type/definition.js';\nimport {\n isArgument,\n isNonNullType,\n isRequiredArgument,\n} from '../type/definition.js';\nimport type { GraphQLDirective } from '../type/directives.js';\nimport type { GraphQLSchema } from '../type/schema.js';\nimport { validateDefaultInput } from '../type/validate.js';\n\nimport {\n coerceDefaultValue,\n coerceInputLiteral,\n coerceInputValue,\n} from '../utilities/coerceInputValue.js';\nimport {\n validateInputLiteral,\n validateInputValue,\n} from '../utilities/validateInputValue.js';\n\nimport type { FragmentVariableValues } from './collectFields.js';\nimport type { GraphQLVariableSignature } from './getVariableSignature.js';\nimport { getVariableSignature } from './getVariableSignature.js';\n\nexport interface VariableValues {\n readonly sources: ReadOnlyObjMap<VariableValueSource>;\n readonly coerced: ReadOnlyObjMap<unknown>;\n}\n\ninterface VariableValueSource {\n readonly signature: GraphQLVariableSignature;\n readonly value?: unknown;\n}\n\ntype VariableValuesOrErrors =\n | { variableValues: VariableValues; errors?: never }\n | { errors: ReadonlyArray<GraphQLError>; variableValues?: never };\n\n/**\n * Prepares an object map of variableValues of the correct type based on the\n * provided variable definitions and arbitrary input. If the input cannot be\n * parsed to match the variable definitions, a GraphQLError will be thrown.\n *\n * Note: The `coerced` and `sources` properties of VariableValues use null\n * prototype to avoid collisions with JavaScript's own property names.\n */\nexport function getVariableValues(\n schema: GraphQLSchema,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { readonly [variable: string]: unknown },\n options?: { maxErrors?: number; hideSuggestions?: boolean },\n): VariableValuesOrErrors {\n const errors: Array<GraphQLError> = [];\n const maxErrors = options?.maxErrors;\n try {\n const variableValues = coerceVariableValues(\n schema,\n varDefNodes,\n inputs,\n (error) => {\n if (maxErrors != null && errors.length >= maxErrors) {\n throw new GraphQLError(\n 'Too many errors processing variables, error limit reached. Execution aborted.',\n );\n }\n errors.push(error);\n },\n options?.hideSuggestions,\n );\n\n if (errors.length === 0) {\n return { variableValues };\n }\n } catch (error) {\n errors.push(ensureGraphQLError(error));\n }\n\n return { errors };\n}\n\nfunction coerceVariableValues(\n schema: GraphQLSchema,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { readonly [variable: string]: unknown },\n onError: (error: GraphQLError) => void,\n hideSuggestions?: Maybe<boolean>,\n): VariableValues {\n const sources: ObjMap<VariableValueSource> = Object.create(null);\n const coerced: ObjMap<unknown> = Object.create(null);\n for (const varDefNode of varDefNodes) {\n const varSignature = getVariableSignature(schema, varDefNode);\n\n if (varSignature instanceof GraphQLError) {\n onError(varSignature);\n continue;\n }\n\n const { name: varName, type: varType } = varSignature;\n const value = Object.hasOwn(inputs, varName) ? inputs[varName] : undefined;\n if (value === undefined) {\n sources[varName] = { signature: varSignature };\n if (varDefNode.defaultValue) {\n maybeUseDefaultValue(\n coerced,\n varName,\n varSignature,\n (error, path) => {\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" has invalid default value${printPathArray(path)}: ${error.message}`,\n { nodes: varDefNode },\n ),\n );\n },\n hideSuggestions,\n );\n continue;\n } else if (!isNonNullType(varType)) {\n // Non-provided values for nullable variables are omitted.\n continue;\n }\n } else {\n sources[varName] = { signature: varSignature, value };\n }\n\n const coercedValue = coerceInputValue(value, varType);\n if (coercedValue !== undefined) {\n coerced[varName] = coercedValue;\n } else {\n validateInputValue(\n value,\n varType,\n (error, path) => {\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" has invalid value${printPathArray(path)}: ${\n error.message\n }`,\n { nodes: varDefNode, originalError: error },\n ),\n );\n },\n hideSuggestions,\n );\n }\n }\n\n return { sources, coerced };\n}\n\nfunction maybeUseDefaultValue(\n coercedValues: ObjMap<unknown>,\n name: string,\n inputValue: GraphQLArgument | GraphQLVariableSignature,\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n hideSuggestions?: Maybe<boolean>,\n): void {\n try {\n // coerceDefaultValue assumes validation has already rejected invalid\n // defaults. If validation was skipped, invalid defaults or nested input\n // field defaults can throw here; recover with validation-style errors below.\n const coercedDefaultValue = coerceDefaultValue(inputValue);\n if (coercedDefaultValue !== undefined) {\n coercedValues[name] = coercedDefaultValue;\n }\n } catch (error) {\n const defaultInput = inputValue.default;\n // Defensive: coerceDefaultValue should only throw while coercing a default.\n /* c8 ignore next 3 */\n if (defaultInput === undefined) {\n throw error;\n }\n\n // Prefer validation's user-facing errors for invalid defaults.\n let reportedValidationError = false;\n validateDefaultInput(\n defaultInput,\n inputValue.type,\n (defaultError, path) => {\n reportedValidationError = true;\n onError(defaultError, path);\n },\n hideSuggestions,\n );\n\n if (!reportedValidationError) {\n // The default itself validated, so coercion failed while applying a nested\n // input field default. Surface the original coercion error.\n onError(ensureGraphQLError(error), []);\n }\n }\n}\n\nexport function getFragmentVariableValues(\n fragmentSpreadNode: FragmentSpreadNode,\n fragmentSignatures: ReadOnlyObjMap<GraphQLVariableSignature>,\n variableValues: VariableValues,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): FragmentVariableValues {\n const argumentNodes = fragmentSpreadNode.arguments ?? [];\n const argNodeMap = new Map(argumentNodes.map((arg) => [arg.name.value, arg]));\n const sources = Object.create(null);\n const coerced = Object.create(null);\n for (const [varName, varSignature] of Object.entries(fragmentSignatures)) {\n sources[varName] = {\n signature: varSignature,\n };\n const argumentNode = argNodeMap.get(varName);\n if (argumentNode !== undefined) {\n const source = sources[varName];\n source.value = argumentNode.value;\n source.fragmentVariableValues = fragmentVariableValues;\n }\n\n coerceArgument(\n coerced,\n fragmentSpreadNode,\n varName,\n varSignature,\n argumentNode,\n variableValues,\n fragmentVariableValues,\n hideSuggestions,\n );\n }\n\n return { sources, coerced };\n}\n\n/**\n * Prepares an object map of argument values given a list of argument\n * definitions and list of argument AST nodes.\n *\n * Note: The returned value uses a null prototype to avoid collisions with\n * JavaScript's own property names.\n */\nexport function getArgumentValues(\n def: GraphQLField<unknown, unknown> | GraphQLDirective,\n node: FieldNode | DirectiveNode,\n variableValues?: Maybe<VariableValues>,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): ObjMap<unknown> {\n const coercedValues: ObjMap<unknown> = Object.create(null);\n\n const argumentNodes = node.arguments ?? [];\n const argNodeMap = new Map(argumentNodes.map((arg) => [arg.name.value, arg]));\n\n for (const argDef of def.args) {\n const name = argDef.name;\n coerceArgument(\n coercedValues,\n node,\n name,\n argDef,\n argNodeMap.get(argDef.name),\n variableValues,\n fragmentVariableValues,\n hideSuggestions,\n );\n }\n return coercedValues;\n}\n\n// eslint-disable-next-line max-params\nfunction coerceArgument(\n coercedValues: ObjMap<unknown>,\n node: FieldNode | DirectiveNode | FragmentSpreadNode,\n argName: string,\n argDef: GraphQLArgument | GraphQLVariableSignature,\n argumentNode: ArgumentNode | FragmentArgumentNode | undefined,\n variableValues: Maybe<VariableValues>,\n fragmentVariableValues: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): void {\n const argType = argDef.type;\n const onArgDefaultValueError = (\n error: GraphQLError,\n path: ReadonlyArray<string | number>,\n ): never => {\n throw new GraphQLError(\n `${printArgumentOrFragmentVariable(argDef, node)} has invalid default value${printPathArray(path)}: ${error.message}`,\n { nodes: node },\n );\n };\n\n if (!argumentNode) {\n if (isRequiredArgument(argDef)) {\n // Note: ProvidedRequiredArgumentsRule validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n throw new GraphQLError(\n // TODO: clean up the naming of isRequiredArgument(), isArgument(), and argDef if/when experimental fragment variables are merged\n `${printArgumentOrFragmentVariable(argDef, node)} of required type \"${argType}\" was not provided.`,\n { nodes: node },\n );\n }\n maybeUseDefaultValue(\n coercedValues,\n argName,\n argDef,\n onArgDefaultValueError,\n hideSuggestions,\n );\n return;\n }\n\n const valueNode = argumentNode.value;\n\n // Variables without a value are treated as if no argument was provided if\n // the argument is not required.\n if (valueNode.kind === Kind.VARIABLE) {\n const variableName = valueNode.name.value;\n const scopedVariableValues = fragmentVariableValues?.sources[variableName]\n ? fragmentVariableValues\n : variableValues;\n if (\n (scopedVariableValues == null ||\n !Object.hasOwn(scopedVariableValues.coerced, variableName)) &&\n !isRequiredArgument(argDef)\n ) {\n maybeUseDefaultValue(\n coercedValues,\n argName,\n argDef,\n onArgDefaultValueError,\n hideSuggestions,\n );\n return;\n }\n }\n const coercedValue = coerceInputLiteral(\n valueNode,\n argType,\n variableValues,\n fragmentVariableValues,\n );\n if (coercedValue === undefined) {\n // Note: ValuesOfCorrectTypeRule validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n validateInputLiteral(\n valueNode,\n argType,\n (error, path) => {\n // TODO: clean up the naming of isRequiredArgument(), isArgument(), and argDef if/when experimental fragment variables are merged\n error.message = `${printArgumentOrFragmentVariable(argDef, node)} has invalid value${printPathArray(\n path,\n )}: ${error.message}`;\n throw error;\n },\n variableValues,\n fragmentVariableValues,\n hideSuggestions,\n );\n /* c8 ignore next */\n invariant(false, 'Invalid argument');\n }\n coercedValues[argName] = coercedValue;\n}\n\n// TODO: clean up the naming of isRequiredArgument(), isArgument(), and argDef if/when experimental fragment variables are merged\nfunction printArgumentOrFragmentVariable(\n argDef: GraphQLArgument | GraphQLVariableSignature,\n node: FieldNode | DirectiveNode | FragmentSpreadNode,\n): string {\n return isArgument(argDef)\n ? `Argument \"${argDef}\"`\n : `Variable \"$${argDef.name}\" defined by fragment \"${node.name.value}\"`;\n}\n\n/**\n * Prepares an object map of argument values given a directive definition\n * and a AST node which may contain directives. Optionally also accepts a map\n * of variable values.\n *\n * If the directive does not exist on the node, returns undefined.\n *\n * Note: The returned value uses a null prototype to avoid collisions with\n * JavaScript's own property names.\n */\nexport function getDirectiveValues(\n directiveDef: GraphQLDirective,\n node: { readonly directives?: ReadonlyArray<DirectiveNode> | undefined },\n variableValues?: Maybe<VariableValues>,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): undefined | ObjMap<unknown> {\n const directiveNode = node.directives?.find(\n (directive) => directive.name.value === directiveDef.name,\n );\n\n if (directiveNode) {\n return getArgumentValues(\n directiveDef,\n directiveNode,\n variableValues,\n fragmentVariableValues,\n hideSuggestions,\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/execution/values.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../jsutils/invariant.ts';\nimport type { Maybe } from '../jsutils/Maybe.ts';\nimport type { ObjMap, ReadOnlyObjMap } from '../jsutils/ObjMap.ts';\nimport { printPathArray } from '../jsutils/printPathArray.ts';\n\nimport { ensureGraphQLError } from '../error/ensureGraphQLError.ts';\nimport { GraphQLError } from '../error/GraphQLError.ts';\n\nimport type {\n ArgumentNode,\n DirectiveNode,\n FieldNode,\n FragmentArgumentNode,\n FragmentSpreadNode,\n VariableDefinitionNode,\n} from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\n\nimport type { GraphQLArgument, GraphQLField } from '../type/definition.ts';\nimport {\n isArgument,\n isNonNullType,\n isRequiredArgument,\n} from '../type/definition.ts';\nimport type { GraphQLDirective } from '../type/directives.ts';\nimport type { GraphQLSchema } from '../type/schema.ts';\nimport { validateDefaultInput } from '../type/validate.ts';\n\nimport {\n coerceDefaultValue,\n coerceInputLiteral,\n coerceInputValue,\n} from '../utilities/coerceInputValue.ts';\nimport {\n validateInputLiteral,\n validateInputValue,\n} from '../utilities/validateInputValue.ts';\n\nimport type { FragmentVariableValues } from './collectFields.ts';\nimport type { GraphQLVariableSignature } from './getVariableSignature.ts';\nimport { getVariableSignature } from './getVariableSignature.ts';\n\nexport interface VariableValues {\n readonly sources: ReadOnlyObjMap<VariableValueSource>;\n readonly coerced: ReadOnlyObjMap<unknown>;\n}\n\ninterface VariableValueSource {\n readonly signature: GraphQLVariableSignature;\n readonly value?: unknown;\n}\n\ntype VariableValuesOrErrors =\n | { variableValues: VariableValues; errors?: never }\n | { errors: ReadonlyArray<GraphQLError>; variableValues?: never };\n\n/**\n * Prepares an object map of variableValues of the correct type based on the\n * provided variable definitions and arbitrary input. If the input cannot be\n * parsed to match the variable definitions, a GraphQLError will be thrown.\n *\n * Note: The `coerced` and `sources` properties of VariableValues use null\n * prototype to avoid collisions with JavaScript's own property names.\n */\nexport function getVariableValues(\n schema: GraphQLSchema,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { readonly [variable: string]: unknown },\n options?: { maxErrors?: number; hideSuggestions?: boolean },\n): VariableValuesOrErrors {\n const errors: Array<GraphQLError> = [];\n const maxErrors = options?.maxErrors;\n try {\n const variableValues = coerceVariableValues(\n schema,\n varDefNodes,\n inputs,\n (error) => {\n if (maxErrors != null && errors.length >= maxErrors) {\n throw new GraphQLError(\n 'Too many errors processing variables, error limit reached. Execution aborted.',\n );\n }\n errors.push(error);\n },\n options?.hideSuggestions,\n );\n\n if (errors.length === 0) {\n return { variableValues };\n }\n } catch (error) {\n errors.push(ensureGraphQLError(error));\n }\n\n return { errors };\n}\n\nfunction coerceVariableValues(\n schema: GraphQLSchema,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { readonly [variable: string]: unknown },\n onError: (error: GraphQLError) => void,\n hideSuggestions?: Maybe<boolean>,\n): VariableValues {\n const sources: ObjMap<VariableValueSource> = Object.create(null);\n const coerced: ObjMap<unknown> = Object.create(null);\n for (const varDefNode of varDefNodes) {\n const varSignature = getVariableSignature(schema, varDefNode);\n\n if (varSignature instanceof GraphQLError) {\n onError(varSignature);\n continue;\n }\n\n const { name: varName, type: varType } = varSignature;\n const value = Object.hasOwn(inputs, varName) ? inputs[varName] : undefined;\n if (value === undefined) {\n sources[varName] = { signature: varSignature };\n if (varDefNode.defaultValue) {\n maybeUseDefaultValue(\n coerced,\n varName,\n varSignature,\n (error, path) => {\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" has invalid default value${printPathArray(path)}: ${error.message}`,\n { nodes: varDefNode },\n ),\n );\n },\n hideSuggestions,\n );\n continue;\n } else if (!isNonNullType(varType)) {\n // Non-provided values for nullable variables are omitted.\n continue;\n }\n } else {\n sources[varName] = { signature: varSignature, value };\n }\n\n const coercedValue = coerceInputValue(value, varType);\n if (coercedValue !== undefined) {\n coerced[varName] = coercedValue;\n } else {\n validateInputValue(\n value,\n varType,\n (error, path) => {\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" has invalid value${printPathArray(path)}: ${\n error.message\n }`,\n { nodes: varDefNode, originalError: error },\n ),\n );\n },\n hideSuggestions,\n );\n }\n }\n\n return { sources, coerced };\n}\n\nfunction maybeUseDefaultValue(\n coercedValues: ObjMap<unknown>,\n name: string,\n inputValue: GraphQLArgument | GraphQLVariableSignature,\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n hideSuggestions?: Maybe<boolean>,\n): void {\n try {\n // coerceDefaultValue assumes validation has already rejected invalid\n // defaults. If validation was skipped, invalid defaults or nested input\n // field defaults can throw here; recover with validation-style errors below.\n const coercedDefaultValue = coerceDefaultValue(inputValue);\n if (coercedDefaultValue !== undefined) {\n coercedValues[name] = coercedDefaultValue;\n }\n } catch (error) {\n const defaultInput = inputValue.default;\n // Defensive: coerceDefaultValue should only throw while coercing a default.\n /* node:coverage ignore next 3 */\n if (defaultInput === undefined) {\n throw error;\n }\n\n // Prefer validation's user-facing errors for invalid defaults.\n let reportedValidationError = false;\n validateDefaultInput(\n defaultInput,\n inputValue.type,\n (defaultError, path) => {\n reportedValidationError = true;\n onError(defaultError, path);\n },\n hideSuggestions,\n );\n\n if (!reportedValidationError) {\n // The default itself validated, so coercion failed while applying a nested\n // input field default. Surface the original coercion error.\n onError(ensureGraphQLError(error), []);\n }\n }\n}\n\nexport function getFragmentVariableValues(\n fragmentSpreadNode: FragmentSpreadNode,\n fragmentSignatures: ReadOnlyObjMap<GraphQLVariableSignature>,\n variableValues: VariableValues,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): FragmentVariableValues {\n const argumentNodes = fragmentSpreadNode.arguments ?? [];\n const argNodeMap = new Map(argumentNodes.map((arg) => [arg.name.value, arg]));\n const sources = Object.create(null);\n const coerced = Object.create(null);\n for (const [varName, varSignature] of Object.entries(fragmentSignatures)) {\n sources[varName] = {\n signature: varSignature,\n };\n const argumentNode = argNodeMap.get(varName);\n if (argumentNode !== undefined) {\n const source = sources[varName];\n source.value = argumentNode.value;\n source.fragmentVariableValues = fragmentVariableValues;\n }\n\n coerceArgument(\n coerced,\n fragmentSpreadNode,\n varName,\n varSignature,\n argumentNode,\n variableValues,\n fragmentVariableValues,\n hideSuggestions,\n );\n }\n\n return { sources, coerced };\n}\n\n/**\n * Prepares an object map of argument values given a list of argument\n * definitions and list of argument AST nodes.\n *\n * Note: The returned value uses a null prototype to avoid collisions with\n * JavaScript's own property names.\n */\nexport function getArgumentValues(\n def: GraphQLField<unknown, unknown> | GraphQLDirective,\n node: FieldNode | DirectiveNode,\n variableValues?: Maybe<VariableValues>,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): ObjMap<unknown> {\n const coercedValues: ObjMap<unknown> = Object.create(null);\n\n const argumentNodes = node.arguments ?? [];\n const argNodeMap = new Map(argumentNodes.map((arg) => [arg.name.value, arg]));\n\n for (const argDef of def.args) {\n const name = argDef.name;\n coerceArgument(\n coercedValues,\n node,\n name,\n argDef,\n argNodeMap.get(argDef.name),\n variableValues,\n fragmentVariableValues,\n hideSuggestions,\n );\n }\n return coercedValues;\n}\n\n// eslint-disable-next-line max-params\nfunction coerceArgument(\n coercedValues: ObjMap<unknown>,\n node: FieldNode | DirectiveNode | FragmentSpreadNode,\n argName: string,\n argDef: GraphQLArgument | GraphQLVariableSignature,\n argumentNode: ArgumentNode | FragmentArgumentNode | undefined,\n variableValues: Maybe<VariableValues>,\n fragmentVariableValues: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): void {\n const argType = argDef.type;\n const onArgDefaultValueError = (\n error: GraphQLError,\n path: ReadonlyArray<string | number>,\n ): never => {\n throw new GraphQLError(\n `${printArgumentOrFragmentVariable(argDef, node)} has invalid default value${printPathArray(path)}: ${error.message}`,\n { nodes: node },\n );\n };\n\n if (!argumentNode) {\n if (isRequiredArgument(argDef)) {\n // Note: ProvidedRequiredArgumentsRule validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n throw new GraphQLError(\n // TODO: clean up the naming of isRequiredArgument(), isArgument(), and argDef if/when experimental fragment variables are merged\n `${printArgumentOrFragmentVariable(argDef, node)} of required type \"${argType}\" was not provided.`,\n { nodes: node },\n );\n }\n maybeUseDefaultValue(\n coercedValues,\n argName,\n argDef,\n onArgDefaultValueError,\n hideSuggestions,\n );\n return;\n }\n\n const valueNode = argumentNode.value;\n\n // Variables without a value are treated as if no argument was provided if\n // the argument is not required.\n if (valueNode.kind === Kind.VARIABLE) {\n const variableName = valueNode.name.value;\n const scopedVariableValues = fragmentVariableValues?.sources[variableName]\n ? fragmentVariableValues\n : variableValues;\n if (\n (scopedVariableValues == null ||\n !Object.hasOwn(scopedVariableValues.coerced, variableName)) &&\n !isRequiredArgument(argDef)\n ) {\n maybeUseDefaultValue(\n coercedValues,\n argName,\n argDef,\n onArgDefaultValueError,\n hideSuggestions,\n );\n return;\n }\n }\n const coercedValue = coerceInputLiteral(\n valueNode,\n argType,\n variableValues,\n fragmentVariableValues,\n );\n if (coercedValue === undefined) {\n // Note: ValuesOfCorrectTypeRule validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n validateInputLiteral(\n valueNode,\n argType,\n (error, path) => {\n // TODO: clean up the naming of isRequiredArgument(), isArgument(), and argDef if/when experimental fragment variables are merged\n error.message = `${printArgumentOrFragmentVariable(argDef, node)} has invalid value${printPathArray(\n path,\n )}: ${error.message}`;\n throw error;\n },\n variableValues,\n fragmentVariableValues,\n hideSuggestions,\n );\n /* node:coverage ignore next */\n invariant(false, 'Invalid argument');\n }\n coercedValues[argName] = coercedValue;\n}\n\n// TODO: clean up the naming of isRequiredArgument(), isArgument(), and argDef if/when experimental fragment variables are merged\nfunction printArgumentOrFragmentVariable(\n argDef: GraphQLArgument | GraphQLVariableSignature,\n node: FieldNode | DirectiveNode | FragmentSpreadNode,\n): string {\n return isArgument(argDef)\n ? `Argument \"${argDef}\"`\n : `Variable \"$${argDef.name}\" defined by fragment \"${node.name.value}\"`;\n}\n\n/**\n * Prepares an object map of argument values given a directive definition\n * and a AST node which may contain directives. Optionally also accepts a map\n * of variable values.\n *\n * If the directive does not exist on the node, returns undefined.\n *\n * Note: The returned value uses a null prototype to avoid collisions with\n * JavaScript's own property names.\n */\nexport function getDirectiveValues(\n directiveDef: GraphQLDirective,\n node: { readonly directives?: ReadonlyArray<DirectiveNode> | undefined },\n variableValues?: Maybe<VariableValues>,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): undefined | ObjMap<unknown> {\n const directiveNode = node.directives?.find(\n (directive) => directive.name.value === directiveDef.name,\n );\n\n if (directiveNode) {\n return getArgumentValues(\n directiveDef,\n directiveNode,\n variableValues,\n fragmentVariableValues,\n hideSuggestions,\n );\n }\n}\n"]}
|
package/execution/values.mjs
CHANGED
|
@@ -87,7 +87,7 @@ function maybeUseDefaultValue(coercedValues, name, inputValue, onError, hideSugg
|
|
|
87
87
|
catch (error) {
|
|
88
88
|
const defaultInput = inputValue.default;
|
|
89
89
|
// Defensive: coerceDefaultValue should only throw while coercing a default.
|
|
90
|
-
/*
|
|
90
|
+
/* node:coverage ignore next 3 */
|
|
91
91
|
if (defaultInput === undefined) {
|
|
92
92
|
throw error;
|
|
93
93
|
}
|
|
@@ -183,7 +183,7 @@ function coerceArgument(coercedValues, node, argName, argDef, argumentNode, vari
|
|
|
183
183
|
error.message = `${printArgumentOrFragmentVariable(argDef, node)} has invalid value${printPathArray(path)}: ${error.message}`;
|
|
184
184
|
throw error;
|
|
185
185
|
}, variableValues, fragmentVariableValues, hideSuggestions);
|
|
186
|
-
/*
|
|
186
|
+
/* node:coverage ignore next */
|
|
187
187
|
invariant(false, 'Invalid argument');
|
|
188
188
|
}
|
|
189
189
|
coercedValues[argName] = coercedValue;
|
package/execution/values.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/execution/values.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../jsutils/invariant.js';\nimport type { Maybe } from '../jsutils/Maybe.js';\nimport type { ObjMap, ReadOnlyObjMap } from '../jsutils/ObjMap.js';\nimport { printPathArray } from '../jsutils/printPathArray.js';\n\nimport { ensureGraphQLError } from '../error/ensureGraphQLError.js';\nimport { GraphQLError } from '../error/GraphQLError.js';\n\nimport type {\n ArgumentNode,\n DirectiveNode,\n FieldNode,\n FragmentArgumentNode,\n FragmentSpreadNode,\n VariableDefinitionNode,\n} from '../language/ast.js';\nimport { Kind } from '../language/kinds.js';\n\nimport type { GraphQLArgument, GraphQLField } from '../type/definition.js';\nimport {\n isArgument,\n isNonNullType,\n isRequiredArgument,\n} from '../type/definition.js';\nimport type { GraphQLDirective } from '../type/directives.js';\nimport type { GraphQLSchema } from '../type/schema.js';\nimport { validateDefaultInput } from '../type/validate.js';\n\nimport {\n coerceDefaultValue,\n coerceInputLiteral,\n coerceInputValue,\n} from '../utilities/coerceInputValue.js';\nimport {\n validateInputLiteral,\n validateInputValue,\n} from '../utilities/validateInputValue.js';\n\nimport type { FragmentVariableValues } from './collectFields.js';\nimport type { GraphQLVariableSignature } from './getVariableSignature.js';\nimport { getVariableSignature } from './getVariableSignature.js';\n\nexport interface VariableValues {\n readonly sources: ReadOnlyObjMap<VariableValueSource>;\n readonly coerced: ReadOnlyObjMap<unknown>;\n}\n\ninterface VariableValueSource {\n readonly signature: GraphQLVariableSignature;\n readonly value?: unknown;\n}\n\ntype VariableValuesOrErrors =\n | { variableValues: VariableValues; errors?: never }\n | { errors: ReadonlyArray<GraphQLError>; variableValues?: never };\n\n/**\n * Prepares an object map of variableValues of the correct type based on the\n * provided variable definitions and arbitrary input. If the input cannot be\n * parsed to match the variable definitions, a GraphQLError will be thrown.\n *\n * Note: The `coerced` and `sources` properties of VariableValues use null\n * prototype to avoid collisions with JavaScript's own property names.\n */\nexport function getVariableValues(\n schema: GraphQLSchema,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { readonly [variable: string]: unknown },\n options?: { maxErrors?: number; hideSuggestions?: boolean },\n): VariableValuesOrErrors {\n const errors: Array<GraphQLError> = [];\n const maxErrors = options?.maxErrors;\n try {\n const variableValues = coerceVariableValues(\n schema,\n varDefNodes,\n inputs,\n (error) => {\n if (maxErrors != null && errors.length >= maxErrors) {\n throw new GraphQLError(\n 'Too many errors processing variables, error limit reached. Execution aborted.',\n );\n }\n errors.push(error);\n },\n options?.hideSuggestions,\n );\n\n if (errors.length === 0) {\n return { variableValues };\n }\n } catch (error) {\n errors.push(ensureGraphQLError(error));\n }\n\n return { errors };\n}\n\nfunction coerceVariableValues(\n schema: GraphQLSchema,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { readonly [variable: string]: unknown },\n onError: (error: GraphQLError) => void,\n hideSuggestions?: Maybe<boolean>,\n): VariableValues {\n const sources: ObjMap<VariableValueSource> = Object.create(null);\n const coerced: ObjMap<unknown> = Object.create(null);\n for (const varDefNode of varDefNodes) {\n const varSignature = getVariableSignature(schema, varDefNode);\n\n if (varSignature instanceof GraphQLError) {\n onError(varSignature);\n continue;\n }\n\n const { name: varName, type: varType } = varSignature;\n const value = Object.hasOwn(inputs, varName) ? inputs[varName] : undefined;\n if (value === undefined) {\n sources[varName] = { signature: varSignature };\n if (varDefNode.defaultValue) {\n maybeUseDefaultValue(\n coerced,\n varName,\n varSignature,\n (error, path) => {\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" has invalid default value${printPathArray(path)}: ${error.message}`,\n { nodes: varDefNode },\n ),\n );\n },\n hideSuggestions,\n );\n continue;\n } else if (!isNonNullType(varType)) {\n // Non-provided values for nullable variables are omitted.\n continue;\n }\n } else {\n sources[varName] = { signature: varSignature, value };\n }\n\n const coercedValue = coerceInputValue(value, varType);\n if (coercedValue !== undefined) {\n coerced[varName] = coercedValue;\n } else {\n validateInputValue(\n value,\n varType,\n (error, path) => {\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" has invalid value${printPathArray(path)}: ${\n error.message\n }`,\n { nodes: varDefNode, originalError: error },\n ),\n );\n },\n hideSuggestions,\n );\n }\n }\n\n return { sources, coerced };\n}\n\nfunction maybeUseDefaultValue(\n coercedValues: ObjMap<unknown>,\n name: string,\n inputValue: GraphQLArgument | GraphQLVariableSignature,\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n hideSuggestions?: Maybe<boolean>,\n): void {\n try {\n // coerceDefaultValue assumes validation has already rejected invalid\n // defaults. If validation was skipped, invalid defaults or nested input\n // field defaults can throw here; recover with validation-style errors below.\n const coercedDefaultValue = coerceDefaultValue(inputValue);\n if (coercedDefaultValue !== undefined) {\n coercedValues[name] = coercedDefaultValue;\n }\n } catch (error) {\n const defaultInput = inputValue.default;\n // Defensive: coerceDefaultValue should only throw while coercing a default.\n /* c8 ignore next 3 */\n if (defaultInput === undefined) {\n throw error;\n }\n\n // Prefer validation's user-facing errors for invalid defaults.\n let reportedValidationError = false;\n validateDefaultInput(\n defaultInput,\n inputValue.type,\n (defaultError, path) => {\n reportedValidationError = true;\n onError(defaultError, path);\n },\n hideSuggestions,\n );\n\n if (!reportedValidationError) {\n // The default itself validated, so coercion failed while applying a nested\n // input field default. Surface the original coercion error.\n onError(ensureGraphQLError(error), []);\n }\n }\n}\n\nexport function getFragmentVariableValues(\n fragmentSpreadNode: FragmentSpreadNode,\n fragmentSignatures: ReadOnlyObjMap<GraphQLVariableSignature>,\n variableValues: VariableValues,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): FragmentVariableValues {\n const argumentNodes = fragmentSpreadNode.arguments ?? [];\n const argNodeMap = new Map(argumentNodes.map((arg) => [arg.name.value, arg]));\n const sources = Object.create(null);\n const coerced = Object.create(null);\n for (const [varName, varSignature] of Object.entries(fragmentSignatures)) {\n sources[varName] = {\n signature: varSignature,\n };\n const argumentNode = argNodeMap.get(varName);\n if (argumentNode !== undefined) {\n const source = sources[varName];\n source.value = argumentNode.value;\n source.fragmentVariableValues = fragmentVariableValues;\n }\n\n coerceArgument(\n coerced,\n fragmentSpreadNode,\n varName,\n varSignature,\n argumentNode,\n variableValues,\n fragmentVariableValues,\n hideSuggestions,\n );\n }\n\n return { sources, coerced };\n}\n\n/**\n * Prepares an object map of argument values given a list of argument\n * definitions and list of argument AST nodes.\n *\n * Note: The returned value uses a null prototype to avoid collisions with\n * JavaScript's own property names.\n */\nexport function getArgumentValues(\n def: GraphQLField<unknown, unknown> | GraphQLDirective,\n node: FieldNode | DirectiveNode,\n variableValues?: Maybe<VariableValues>,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): ObjMap<unknown> {\n const coercedValues: ObjMap<unknown> = Object.create(null);\n\n const argumentNodes = node.arguments ?? [];\n const argNodeMap = new Map(argumentNodes.map((arg) => [arg.name.value, arg]));\n\n for (const argDef of def.args) {\n const name = argDef.name;\n coerceArgument(\n coercedValues,\n node,\n name,\n argDef,\n argNodeMap.get(argDef.name),\n variableValues,\n fragmentVariableValues,\n hideSuggestions,\n );\n }\n return coercedValues;\n}\n\n// eslint-disable-next-line max-params\nfunction coerceArgument(\n coercedValues: ObjMap<unknown>,\n node: FieldNode | DirectiveNode | FragmentSpreadNode,\n argName: string,\n argDef: GraphQLArgument | GraphQLVariableSignature,\n argumentNode: ArgumentNode | FragmentArgumentNode | undefined,\n variableValues: Maybe<VariableValues>,\n fragmentVariableValues: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): void {\n const argType = argDef.type;\n const onArgDefaultValueError = (\n error: GraphQLError,\n path: ReadonlyArray<string | number>,\n ): never => {\n throw new GraphQLError(\n `${printArgumentOrFragmentVariable(argDef, node)} has invalid default value${printPathArray(path)}: ${error.message}`,\n { nodes: node },\n );\n };\n\n if (!argumentNode) {\n if (isRequiredArgument(argDef)) {\n // Note: ProvidedRequiredArgumentsRule validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n throw new GraphQLError(\n // TODO: clean up the naming of isRequiredArgument(), isArgument(), and argDef if/when experimental fragment variables are merged\n `${printArgumentOrFragmentVariable(argDef, node)} of required type \"${argType}\" was not provided.`,\n { nodes: node },\n );\n }\n maybeUseDefaultValue(\n coercedValues,\n argName,\n argDef,\n onArgDefaultValueError,\n hideSuggestions,\n );\n return;\n }\n\n const valueNode = argumentNode.value;\n\n // Variables without a value are treated as if no argument was provided if\n // the argument is not required.\n if (valueNode.kind === Kind.VARIABLE) {\n const variableName = valueNode.name.value;\n const scopedVariableValues = fragmentVariableValues?.sources[variableName]\n ? fragmentVariableValues\n : variableValues;\n if (\n (scopedVariableValues == null ||\n !Object.hasOwn(scopedVariableValues.coerced, variableName)) &&\n !isRequiredArgument(argDef)\n ) {\n maybeUseDefaultValue(\n coercedValues,\n argName,\n argDef,\n onArgDefaultValueError,\n hideSuggestions,\n );\n return;\n }\n }\n const coercedValue = coerceInputLiteral(\n valueNode,\n argType,\n variableValues,\n fragmentVariableValues,\n );\n if (coercedValue === undefined) {\n // Note: ValuesOfCorrectTypeRule validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n validateInputLiteral(\n valueNode,\n argType,\n (error, path) => {\n // TODO: clean up the naming of isRequiredArgument(), isArgument(), and argDef if/when experimental fragment variables are merged\n error.message = `${printArgumentOrFragmentVariable(argDef, node)} has invalid value${printPathArray(\n path,\n )}: ${error.message}`;\n throw error;\n },\n variableValues,\n fragmentVariableValues,\n hideSuggestions,\n );\n /* c8 ignore next */\n invariant(false, 'Invalid argument');\n }\n coercedValues[argName] = coercedValue;\n}\n\n// TODO: clean up the naming of isRequiredArgument(), isArgument(), and argDef if/when experimental fragment variables are merged\nfunction printArgumentOrFragmentVariable(\n argDef: GraphQLArgument | GraphQLVariableSignature,\n node: FieldNode | DirectiveNode | FragmentSpreadNode,\n): string {\n return isArgument(argDef)\n ? `Argument \"${argDef}\"`\n : `Variable \"$${argDef.name}\" defined by fragment \"${node.name.value}\"`;\n}\n\n/**\n * Prepares an object map of argument values given a directive definition\n * and a AST node which may contain directives. Optionally also accepts a map\n * of variable values.\n *\n * If the directive does not exist on the node, returns undefined.\n *\n * Note: The returned value uses a null prototype to avoid collisions with\n * JavaScript's own property names.\n */\nexport function getDirectiveValues(\n directiveDef: GraphQLDirective,\n node: { readonly directives?: ReadonlyArray<DirectiveNode> | undefined },\n variableValues?: Maybe<VariableValues>,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): undefined | ObjMap<unknown> {\n const directiveNode = node.directives?.find(\n (directive) => directive.name.value === directiveDef.name,\n );\n\n if (directiveNode) {\n return getArgumentValues(\n directiveDef,\n directiveNode,\n variableValues,\n fragmentVariableValues,\n hideSuggestions,\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/execution/values.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../jsutils/invariant.ts';\nimport type { Maybe } from '../jsutils/Maybe.ts';\nimport type { ObjMap, ReadOnlyObjMap } from '../jsutils/ObjMap.ts';\nimport { printPathArray } from '../jsutils/printPathArray.ts';\n\nimport { ensureGraphQLError } from '../error/ensureGraphQLError.ts';\nimport { GraphQLError } from '../error/GraphQLError.ts';\n\nimport type {\n ArgumentNode,\n DirectiveNode,\n FieldNode,\n FragmentArgumentNode,\n FragmentSpreadNode,\n VariableDefinitionNode,\n} from '../language/ast.ts';\nimport { Kind } from '../language/kinds.ts';\n\nimport type { GraphQLArgument, GraphQLField } from '../type/definition.ts';\nimport {\n isArgument,\n isNonNullType,\n isRequiredArgument,\n} from '../type/definition.ts';\nimport type { GraphQLDirective } from '../type/directives.ts';\nimport type { GraphQLSchema } from '../type/schema.ts';\nimport { validateDefaultInput } from '../type/validate.ts';\n\nimport {\n coerceDefaultValue,\n coerceInputLiteral,\n coerceInputValue,\n} from '../utilities/coerceInputValue.ts';\nimport {\n validateInputLiteral,\n validateInputValue,\n} from '../utilities/validateInputValue.ts';\n\nimport type { FragmentVariableValues } from './collectFields.ts';\nimport type { GraphQLVariableSignature } from './getVariableSignature.ts';\nimport { getVariableSignature } from './getVariableSignature.ts';\n\nexport interface VariableValues {\n readonly sources: ReadOnlyObjMap<VariableValueSource>;\n readonly coerced: ReadOnlyObjMap<unknown>;\n}\n\ninterface VariableValueSource {\n readonly signature: GraphQLVariableSignature;\n readonly value?: unknown;\n}\n\ntype VariableValuesOrErrors =\n | { variableValues: VariableValues; errors?: never }\n | { errors: ReadonlyArray<GraphQLError>; variableValues?: never };\n\n/**\n * Prepares an object map of variableValues of the correct type based on the\n * provided variable definitions and arbitrary input. If the input cannot be\n * parsed to match the variable definitions, a GraphQLError will be thrown.\n *\n * Note: The `coerced` and `sources` properties of VariableValues use null\n * prototype to avoid collisions with JavaScript's own property names.\n */\nexport function getVariableValues(\n schema: GraphQLSchema,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { readonly [variable: string]: unknown },\n options?: { maxErrors?: number; hideSuggestions?: boolean },\n): VariableValuesOrErrors {\n const errors: Array<GraphQLError> = [];\n const maxErrors = options?.maxErrors;\n try {\n const variableValues = coerceVariableValues(\n schema,\n varDefNodes,\n inputs,\n (error) => {\n if (maxErrors != null && errors.length >= maxErrors) {\n throw new GraphQLError(\n 'Too many errors processing variables, error limit reached. Execution aborted.',\n );\n }\n errors.push(error);\n },\n options?.hideSuggestions,\n );\n\n if (errors.length === 0) {\n return { variableValues };\n }\n } catch (error) {\n errors.push(ensureGraphQLError(error));\n }\n\n return { errors };\n}\n\nfunction coerceVariableValues(\n schema: GraphQLSchema,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { readonly [variable: string]: unknown },\n onError: (error: GraphQLError) => void,\n hideSuggestions?: Maybe<boolean>,\n): VariableValues {\n const sources: ObjMap<VariableValueSource> = Object.create(null);\n const coerced: ObjMap<unknown> = Object.create(null);\n for (const varDefNode of varDefNodes) {\n const varSignature = getVariableSignature(schema, varDefNode);\n\n if (varSignature instanceof GraphQLError) {\n onError(varSignature);\n continue;\n }\n\n const { name: varName, type: varType } = varSignature;\n const value = Object.hasOwn(inputs, varName) ? inputs[varName] : undefined;\n if (value === undefined) {\n sources[varName] = { signature: varSignature };\n if (varDefNode.defaultValue) {\n maybeUseDefaultValue(\n coerced,\n varName,\n varSignature,\n (error, path) => {\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" has invalid default value${printPathArray(path)}: ${error.message}`,\n { nodes: varDefNode },\n ),\n );\n },\n hideSuggestions,\n );\n continue;\n } else if (!isNonNullType(varType)) {\n // Non-provided values for nullable variables are omitted.\n continue;\n }\n } else {\n sources[varName] = { signature: varSignature, value };\n }\n\n const coercedValue = coerceInputValue(value, varType);\n if (coercedValue !== undefined) {\n coerced[varName] = coercedValue;\n } else {\n validateInputValue(\n value,\n varType,\n (error, path) => {\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" has invalid value${printPathArray(path)}: ${\n error.message\n }`,\n { nodes: varDefNode, originalError: error },\n ),\n );\n },\n hideSuggestions,\n );\n }\n }\n\n return { sources, coerced };\n}\n\nfunction maybeUseDefaultValue(\n coercedValues: ObjMap<unknown>,\n name: string,\n inputValue: GraphQLArgument | GraphQLVariableSignature,\n onError: (error: GraphQLError, path: ReadonlyArray<string | number>) => void,\n hideSuggestions?: Maybe<boolean>,\n): void {\n try {\n // coerceDefaultValue assumes validation has already rejected invalid\n // defaults. If validation was skipped, invalid defaults or nested input\n // field defaults can throw here; recover with validation-style errors below.\n const coercedDefaultValue = coerceDefaultValue(inputValue);\n if (coercedDefaultValue !== undefined) {\n coercedValues[name] = coercedDefaultValue;\n }\n } catch (error) {\n const defaultInput = inputValue.default;\n // Defensive: coerceDefaultValue should only throw while coercing a default.\n /* node:coverage ignore next 3 */\n if (defaultInput === undefined) {\n throw error;\n }\n\n // Prefer validation's user-facing errors for invalid defaults.\n let reportedValidationError = false;\n validateDefaultInput(\n defaultInput,\n inputValue.type,\n (defaultError, path) => {\n reportedValidationError = true;\n onError(defaultError, path);\n },\n hideSuggestions,\n );\n\n if (!reportedValidationError) {\n // The default itself validated, so coercion failed while applying a nested\n // input field default. Surface the original coercion error.\n onError(ensureGraphQLError(error), []);\n }\n }\n}\n\nexport function getFragmentVariableValues(\n fragmentSpreadNode: FragmentSpreadNode,\n fragmentSignatures: ReadOnlyObjMap<GraphQLVariableSignature>,\n variableValues: VariableValues,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): FragmentVariableValues {\n const argumentNodes = fragmentSpreadNode.arguments ?? [];\n const argNodeMap = new Map(argumentNodes.map((arg) => [arg.name.value, arg]));\n const sources = Object.create(null);\n const coerced = Object.create(null);\n for (const [varName, varSignature] of Object.entries(fragmentSignatures)) {\n sources[varName] = {\n signature: varSignature,\n };\n const argumentNode = argNodeMap.get(varName);\n if (argumentNode !== undefined) {\n const source = sources[varName];\n source.value = argumentNode.value;\n source.fragmentVariableValues = fragmentVariableValues;\n }\n\n coerceArgument(\n coerced,\n fragmentSpreadNode,\n varName,\n varSignature,\n argumentNode,\n variableValues,\n fragmentVariableValues,\n hideSuggestions,\n );\n }\n\n return { sources, coerced };\n}\n\n/**\n * Prepares an object map of argument values given a list of argument\n * definitions and list of argument AST nodes.\n *\n * Note: The returned value uses a null prototype to avoid collisions with\n * JavaScript's own property names.\n */\nexport function getArgumentValues(\n def: GraphQLField<unknown, unknown> | GraphQLDirective,\n node: FieldNode | DirectiveNode,\n variableValues?: Maybe<VariableValues>,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): ObjMap<unknown> {\n const coercedValues: ObjMap<unknown> = Object.create(null);\n\n const argumentNodes = node.arguments ?? [];\n const argNodeMap = new Map(argumentNodes.map((arg) => [arg.name.value, arg]));\n\n for (const argDef of def.args) {\n const name = argDef.name;\n coerceArgument(\n coercedValues,\n node,\n name,\n argDef,\n argNodeMap.get(argDef.name),\n variableValues,\n fragmentVariableValues,\n hideSuggestions,\n );\n }\n return coercedValues;\n}\n\n// eslint-disable-next-line max-params\nfunction coerceArgument(\n coercedValues: ObjMap<unknown>,\n node: FieldNode | DirectiveNode | FragmentSpreadNode,\n argName: string,\n argDef: GraphQLArgument | GraphQLVariableSignature,\n argumentNode: ArgumentNode | FragmentArgumentNode | undefined,\n variableValues: Maybe<VariableValues>,\n fragmentVariableValues: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): void {\n const argType = argDef.type;\n const onArgDefaultValueError = (\n error: GraphQLError,\n path: ReadonlyArray<string | number>,\n ): never => {\n throw new GraphQLError(\n `${printArgumentOrFragmentVariable(argDef, node)} has invalid default value${printPathArray(path)}: ${error.message}`,\n { nodes: node },\n );\n };\n\n if (!argumentNode) {\n if (isRequiredArgument(argDef)) {\n // Note: ProvidedRequiredArgumentsRule validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n throw new GraphQLError(\n // TODO: clean up the naming of isRequiredArgument(), isArgument(), and argDef if/when experimental fragment variables are merged\n `${printArgumentOrFragmentVariable(argDef, node)} of required type \"${argType}\" was not provided.`,\n { nodes: node },\n );\n }\n maybeUseDefaultValue(\n coercedValues,\n argName,\n argDef,\n onArgDefaultValueError,\n hideSuggestions,\n );\n return;\n }\n\n const valueNode = argumentNode.value;\n\n // Variables without a value are treated as if no argument was provided if\n // the argument is not required.\n if (valueNode.kind === Kind.VARIABLE) {\n const variableName = valueNode.name.value;\n const scopedVariableValues = fragmentVariableValues?.sources[variableName]\n ? fragmentVariableValues\n : variableValues;\n if (\n (scopedVariableValues == null ||\n !Object.hasOwn(scopedVariableValues.coerced, variableName)) &&\n !isRequiredArgument(argDef)\n ) {\n maybeUseDefaultValue(\n coercedValues,\n argName,\n argDef,\n onArgDefaultValueError,\n hideSuggestions,\n );\n return;\n }\n }\n const coercedValue = coerceInputLiteral(\n valueNode,\n argType,\n variableValues,\n fragmentVariableValues,\n );\n if (coercedValue === undefined) {\n // Note: ValuesOfCorrectTypeRule validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n validateInputLiteral(\n valueNode,\n argType,\n (error, path) => {\n // TODO: clean up the naming of isRequiredArgument(), isArgument(), and argDef if/when experimental fragment variables are merged\n error.message = `${printArgumentOrFragmentVariable(argDef, node)} has invalid value${printPathArray(\n path,\n )}: ${error.message}`;\n throw error;\n },\n variableValues,\n fragmentVariableValues,\n hideSuggestions,\n );\n /* node:coverage ignore next */\n invariant(false, 'Invalid argument');\n }\n coercedValues[argName] = coercedValue;\n}\n\n// TODO: clean up the naming of isRequiredArgument(), isArgument(), and argDef if/when experimental fragment variables are merged\nfunction printArgumentOrFragmentVariable(\n argDef: GraphQLArgument | GraphQLVariableSignature,\n node: FieldNode | DirectiveNode | FragmentSpreadNode,\n): string {\n return isArgument(argDef)\n ? `Argument \"${argDef}\"`\n : `Variable \"$${argDef.name}\" defined by fragment \"${node.name.value}\"`;\n}\n\n/**\n * Prepares an object map of argument values given a directive definition\n * and a AST node which may contain directives. Optionally also accepts a map\n * of variable values.\n *\n * If the directive does not exist on the node, returns undefined.\n *\n * Note: The returned value uses a null prototype to avoid collisions with\n * JavaScript's own property names.\n */\nexport function getDirectiveValues(\n directiveDef: GraphQLDirective,\n node: { readonly directives?: ReadonlyArray<DirectiveNode> | undefined },\n variableValues?: Maybe<VariableValues>,\n fragmentVariableValues?: Maybe<FragmentVariableValues>,\n hideSuggestions?: Maybe<boolean>,\n): undefined | ObjMap<unknown> {\n const directiveNode = node.directives?.find(\n (directive) => directive.name.value === directiveDef.name,\n );\n\n if (directiveNode) {\n return getArgumentValues(\n directiveDef,\n directiveNode,\n variableValues,\n fragmentVariableValues,\n hideSuggestions,\n );\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PromiseOrValue } from
|
|
1
|
+
import type { PromiseOrValue } from "../jsutils/PromiseOrValue.mjs";
|
|
2
2
|
/**
|
|
3
3
|
* Given an AsyncGenerator and provided functions, return an AsyncGenerator
|
|
4
4
|
* which calls the given functions when the generator is abruptly closed,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PromiseOrValue } from
|
|
1
|
+
import type { PromiseOrValue } from "../jsutils/PromiseOrValue.js";
|
|
2
2
|
/**
|
|
3
3
|
* Given an AsyncGenerator and provided functions, return an AsyncGenerator
|
|
4
4
|
* which calls the given functions when the generator is abruptly closed,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.withConcurrentAbruptClose = withConcurrentAbruptClose;
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
const isPromise_ts_1 = require("../jsutils/isPromise.js");
|
|
5
|
+
/* node:coverage ignore next 2 */
|
|
6
|
+
const asyncDispose = Symbol.asyncDispose ?? Symbol.for('Symbol.asyncDispose');
|
|
7
7
|
/**
|
|
8
8
|
* Given an AsyncGenerator and provided functions, return an AsyncGenerator
|
|
9
9
|
* which calls the given functions when the generator is abruptly closed,
|
|
@@ -59,7 +59,7 @@ function withConcurrentAbruptClose(generator, beforeReturn, beforeThrow = before
|
|
|
59
59
|
function ignoreErrors(fn) {
|
|
60
60
|
try {
|
|
61
61
|
const result = fn();
|
|
62
|
-
if ((0,
|
|
62
|
+
if ((0, isPromise_ts_1.isPromise)(result)) {
|
|
63
63
|
return result.catch(() => {
|
|
64
64
|
// ignore error
|
|
65
65
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withConcurrentAbruptClose.js","sourceRoot":"","sources":["../../src/execution/withConcurrentAbruptClose.ts"],"names":[],"mappings":";;AAkBA,8DA8CC;AAhED,0DAAoD;AAGpD,MAAM,YAAY,GAChB,MAAM,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"withConcurrentAbruptClose.js","sourceRoot":"","sources":["../../src/execution/withConcurrentAbruptClose.ts"],"names":[],"mappings":";;AAkBA,8DA8CC;AAhED,0DAAoD;AAGpD,iCAAiC;AACjC,MAAM,YAAY,GAChB,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAE3D;;;;;;;;;;GAUG;AACH,SAAgB,yBAAyB,CACvC,SAAwC,EACxC,YAAwC,EACxC,cAAyD,YAAY;IAErE,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,oBAAoB,GAAG,KAAK,CAAC;IAEjC,MAAM,gBAAgB,GAAG,CAAC,EAA8B,EAAE,EAAE;QAC1D,IAAI,SAAS,IAAI,oBAAoB,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QACD,oBAAoB,GAAG,IAAI,CAAC;QAC5B,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,OAAO;QACL,CAAC,MAAM,CAAC,aAAa,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI;YACF,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM;iBACH,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;gBAClB,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;oBACnB,SAAS,GAAG,IAAI,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC1B,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,CAAC,MAAM;YACV,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;YACrC,OAAO,SAAS,CAAC,MAAM,EAAE,CAAC;QAC5B,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,KAAe;YACzB,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YACjD,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,CAAC,CAAC,YAAY,CAAC;YAClB,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAC;YACrC,IAAI,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,UAAU,EAAE,CAAC;gBAClD,MAAM,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,EAAiC;IAEjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,EAAE,CAAC;QACpB,IAAI,IAAA,wBAAS,EAAC,MAAM,CAAC,EAAE,CAAC;YACtB,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBACvB,eAAe;YACjB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;AACH,CAAC","sourcesContent":["import { isPromise } from '../jsutils/isPromise.ts';\nimport type { PromiseOrValue } from '../jsutils/PromiseOrValue.ts';\n\n/* node:coverage ignore next 2 */\nconst asyncDispose: typeof Symbol.asyncDispose =\n Symbol.asyncDispose ?? Symbol.for('Symbol.asyncDispose');\n\n/**\n * Given an AsyncGenerator and provided functions, return an AsyncGenerator\n * which calls the given functions when the generator is abruptly closed,\n * calling the functions immediately even if the generator is paused.\n *\n * This is useful for allowing return and throw to trigger logic even if the\n * generator is paused on a pending await within a `next()` call (including\n * if that logic can cause that hanging `next()` call to return early).\n *\n * Errors from the provided functions are ignored.\n */\nexport function withConcurrentAbruptClose<T>(\n generator: AsyncGenerator<T, void, void>,\n beforeReturn: () => PromiseOrValue<void>,\n beforeThrow: (error?: unknown) => PromiseOrValue<void> = beforeReturn,\n): AsyncGenerator<T, void, void> {\n let completed = false;\n let abruptCloseRequested = false;\n\n const runAbruptCloseFn = (fn: () => PromiseOrValue<void>) => {\n if (completed || abruptCloseRequested) {\n return;\n }\n abruptCloseRequested = true;\n return ignoreErrors(fn);\n };\n\n return {\n [Symbol.asyncIterator]() {\n return this;\n },\n next() {\n const result = generator.next();\n result\n .then((iteration) => {\n if (iteration.done) {\n completed = true;\n }\n })\n .catch(() => undefined);\n return result;\n },\n async return() {\n await runAbruptCloseFn(beforeReturn);\n return generator.return();\n },\n async throw(error?: unknown) {\n await runAbruptCloseFn(() => beforeThrow(error));\n return generator.throw(error);\n },\n async [asyncDispose]() {\n await runAbruptCloseFn(beforeReturn);\n if (typeof generator[asyncDispose] === 'function') {\n await generator[asyncDispose]();\n }\n },\n };\n}\n\nfunction ignoreErrors(\n fn: () => PromiseOrValue<unknown>,\n): PromiseOrValue<unknown> {\n try {\n const result = fn();\n if (isPromise(result)) {\n return result.catch(() => {\n // ignore error\n });\n }\n } catch {\n // ignore error\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isPromise } from "../jsutils/isPromise.mjs";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
/* node:coverage ignore next 2 */
|
|
3
|
+
const asyncDispose = Symbol.asyncDispose ?? Symbol.for('Symbol.asyncDispose');
|
|
4
4
|
/**
|
|
5
5
|
* Given an AsyncGenerator and provided functions, return an AsyncGenerator
|
|
6
6
|
* which calls the given functions when the generator is abruptly closed,
|